package com.qhgrain.api.menurolepermission.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.qhgrain.api.menurolepermission.entity.Role;
import com.qhgrain.api.menurolepermission.info.RoleInfo;

public interface IRoleService {

	/**
	 * 新增角色 
	 *@param roles 新增的角色集合 
	 *@return 
	*/
	void addRole(Role Role);

	/**
	 * 编辑角色 
	 *@param role 编辑的角色信息 
	 *@return 
	*/
	void editRole(Role role);


	/**
	 * 根据ID数组删除角色 
	 *@param ids 要删除的角色ID数组 
	 *@return 
	*/
	void deleteByIds(String[] ids);

	/**
	 * 根据ID获取角色 
	 *@param roleId 根据ID获取角色 
	 *@return 
	*/
	Role getRoleById(String roleId);

	/**
	 * 角色授权 
	 *@param pIds 授权的权限ID数组 
	 *@param roleId 授权的角色ID 
	 *@return 
	*/
	void grantPermissions(String[] pIds,String roleId);


	void grantUsers(String roleId,List<String> userIds);
	/**
	 * no description for this method 
	 *@param rp  
	 *@return 
	*/
	void deleteRolePermission(String roleId);
	
	PageInfo<Role> queryPage(String roleName, String roleType,
			String status, int pageNo, int pageSize);

	List<Role> queryList(String roleName, String roleType,
			String status, String createDate);
	/**
	 * 获取所有正常的角色
	 * @return
	 */
	List<Role> getAll(String userId);
	/**
	 * 
	 * 2016年4月6日 下午1:50:23
	 * @tags 为用户分配角色
	 * 
	 * @author zhaoyq
	 */
	void grantRolesForUser(List<String> roleIds, String userId);
	/**
	 * 根据角色ID和用户ID删除用户角色中间信息
	 */
	void deleteUserRole(String roleId, String userId);
	
	Role findByRoleCode(String roleCode);
	
	void insertBatch(List<RoleInfo> list);
	
	void update(List<RoleInfo> list);
	
	List<RoleInfo> getRolesByAppId(String appId);
}
